//=======================================================
//AUTHOR: JEFF XL. ZHANG ARIZONA STATE UNIVERSITY
//ALL RIGHTS RESERVED  2008
//=======================================================
#pragma once
//#ifndef		//potential replacement for pragma once
#include <cv.h>
#include <highgui.h>
#include "JF_line.h"
#include "JF_data_structure.h"
#include "LineFeature.h"
using namespace std;

class JF_LineFeature: public LineFeature
{
public:
	bool Verticalness;
	double Length, Slope, Intercept;
	Histogram TheHist;		//FOR EACH EDGE
	JF_LineFeature();
	JF_LineFeature(IplImage *aimg,const JF_Line& aline);
	~JF_LineFeature();
	Line* getLine();
private:
	IplImage* _TheImage;		//ORIGINAL Image
	JF_Line _TheLine;		//ORIGINAL LINE SEGMENT TO BE OPERATED ON (***is this correct?***)
};

JF_LineFeature::JF_LineFeature(){
	//DEFAULT CONSTRUCTOR
}

JF_LineFeature::~JF_LineFeature(){
};

Line* JF_LineFeature::getLine(){
	JF_Line* line;		//ATTEMPTING TO SATISFY THE LINE RETURN REQUIREMENT
	line = new JF_Line;
	*line = _TheLine;
	return line;
//	return _TheLine;
}

JF_LineFeature::JF_LineFeature(IplImage *aimg,const JF_Line& aline){
//LineFeature::LineFeature(Line aline){
	_TheImage = aimg;
	_TheLine = aline;
}

